#if !defined(ximera_common_imovable_hpp)
#define ximera_common_imovable_hpp

// -----------------------------------------------------------

#include <ximera/math/vector3.hpp>
#include <ximera/math/quaternion.hpp>
#include <ximera/math/matrix3.hpp>
#include <ximera/math/matrix4.hpp>

namespace ximera
{
    class XIMERA_API IMovable
    {
    public:
        virtual ~IMovable();

        virtual math::Vector3 position() const = 0;
        virtual void position(math::Vector3 const& pos) = 0;

        virtual math::Quaternion orientation() const = 0;
        virtual void orientation(math::Quaternion const& quat) = 0;

        virtual math::Matrix3 orientationMatrix() const = 0;
        virtual void orientationMatrix(math::Matrix3 const& orient) = 0;
    };
}

// -----------------------------------------------------------

#endif
